#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton* button = new QPushButton(this);
    button->setText("这是一个按钮!");
    //此时默认情况下，按钮就是在(0, 0)位置，即左上角
    //可以使用 move 函数来设置按钮的位置!

    button->move(200,300);

    //坐标背后的单位: --- 像素 !

    //当然了，也可以给Widget也可以move
    this->move(200,100);

    //move是根据其父控件进行的


    //下一节: 信号和槽
    //QT中谈到信号，也要涉及三要素
    //信号源：由哪一个控件发出的信号，主体是QT的一个控件（按钮，输入框...），Linux中是某一个进程发送的信号
    //信号的类型：用户进行不同的操作，就可能触发不同的信号 --- 点击按钮就会触发点击信号；输入框中移动光标；...
    //信号的处理方式：在QT中叫做“槽(slot)”，其实就是一个函数，可以使用connect这样的函数，将槽和某一个控件关联起来。后续只要信号触发了，QT就会自动执行槽函数 --- 本质就是回调函数callback

    //connect这个函数是QObject这个类提供的静态成员函数
    //继承关系：QObject -> QWidget -> QPushButton/QlineEdit
    //所以后面继承QObject的就可以使用connect
}

Widget::~Widget()
{
    delete ui;
}
